package cn.zhfeat.hatch.service.impl;

import java.util.List;
import javax.annotation.Resource;
import cn.zhfeat.core.base.BaseServiceImpl;
import cn.zhfeat.hatch.dao.store.IBaseStoreToUserMapper;
import cn.zhfeat.hatch.dto.store.BaseStoreToUserDto;
import cn.zhfeat.hatch.entity.store.BaseStoreToUser;
import cn.zhfeat.hatch.service.IBaseStoreToUserService;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

/**
 * @description: 用户门店中间表
 *
 * @author ZhangHao
 * @date 2018年5月3日 下午2:24:32 
 * @version 1.0.0.1
 */
@Service("baseStoreToUserService") 
public class BaseStoreToUserServiceImpl extends BaseServiceImpl<BaseStoreToUser, BaseStoreToUserDto, Long> implements IBaseStoreToUserService {

	@Resource
	private IBaseStoreToUserMapper mapper;

	/**
	 * @description: 根据Long userId ， Long cid 查询用户门店关联信息|查询条件不符则返回null
	 *			查询用户绑定的门店服务接口
	 *
	 * @author ZhangHao
	 * @date 2018年5月3日 下午2:17:17 
	 * @version 1.0.0.1
	 */
	public List<BaseStoreToUser> selectUserStores(BaseStoreToUserDto dto) {
		if(dto.getCid() == null && dto.getUserId() == null) {
			return null;
		}
		
		return mapper.selectUserStores(dto);
	}

	/**
	 * @description: 根据用户id更新用户门店对应关系，如果用户id为null或updateTime为null则返回0，标识更新失败
	 *		逻辑删除也调用此方法。
	 * 原方法:public Boolean deleteUserStores(Long userId,String tenantId);
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月7日 下午2:18:17 
	 * @version 1.0.0.1
	 */
	@Override
	public Integer updateBaseStoreToUserByType(BaseStoreToUserDto dto) {
		return mapper.updateBaseStoreToUserByType(dto);
	}

	/**
	 * @description: 增加用户和门店的对应关系并返回自增ID
	 * 原方法:public Boolean createUserStore(BmUserStore bmUserStore);
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月7日 下午2:29:01 
	 * @version 1.0.0.1
	 */
	@Override
	public int insertBaseStoreToUser(BaseStoreToUser entity) {
		return mapper.insertSelective(entity);
	}

	/**
	 * @description: 查询用户绑定的门店详细 - 列表分页
	 * 原方法:
	 * 1、public List<Map<String, Object>> getStoreByData(String userId,String tenantId, Integer startIndex,Integer pageSize)
	 * 2、public int getStoreTotlCount(String userId,String tenantId)
	 * 两个方法合并为一个分页方法
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月7日 下午4:25:36 
	 * @version 1.0.0.1
	 */
	@Override
	public PageInfo<BaseStoreToUser> ajaxPageListByBaseStores(
			BaseStoreToUserDto dto) {
		Integer startIndex = dto.getStartIndex(); 		// 当前第几页
		Integer pageSize = dto.getPageSize(); 			// 当前页所显示记录条数
		int num = 1;
		int size = 10;
		if (startIndex != null) {
			num = startIndex;
		}
		if (pageSize != null) {
			size = pageSize;
		}

		PageHelper.startPage(num, size);
		List<BaseStoreToUser> list = mapper.dialogAjaxPageListByDto(dto); 
		if (list != null && list.size() > 0) {
			PageInfo<BaseStoreToUser> page = new PageInfo<BaseStoreToUser>(list);
			return page;
		} 
		return null;
	}   

	
	
}
 































